package main

//Closure闭包
//闭包的本质:闭包=方法+该方法所绑定的运行时上下文
//闭包如果使用不当,可能会造成内存泄露问题,因为一个变量如果被闭包引用,那么它是不会被垃圾回收的,使用时需要特别注意

func main() {
	//闭包调用
	closure := Closure("zsa")
	println(closure())
}

func Closure(name string) func() string {
	//返回的这个方法,就是一个闭包
	//它所绑定的上下文环境就是name这个方法入参
	return func() string {
		return "hello: " + name
	}
}
